#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "74HC595.h"
#include "ADC_DMA.h"
#include "ModbusSlave_Task.h"
#include "Output.h"
#include "Sensor_Read_Task.h"
#include "bsp.h"

#include "CD4051.h"
#include "Input.h"
#include "PWM_OUT.h"
#include "SGM51242.h"
#include "Timer.h"
#include "parameters.h"
#include "sdp800.h"
#include "userconfig.h"

/*****************************************************************************/
void SystemReset(void) {
    __disable_irq();
    __set_FAULTMASK(1);
    NVIC_SystemReset();
}

uint32_t GetSysTickMs(void) {
    return ((OSTimeGet() / OS_TICKS_PER_SEC) * 1000);
}

void BSP_Init(void) {
    SPI_Flash_Init();
    LED_Init();
    Input_Init();       // 数字输入初始化
    DIN_Timer_Init();   // 脉冲定时器
    SGM51242_Init();
    ADG_Init();
    PWM_Init();
    Sdp800_Init(0x6C);
    USART_Config();
    Task_ModbusSlave_Init();
}
